package multiplex.dataaccess.teste;

import java.util.Calendar;
import java.util.List;

import multiplex.dataaccess.dao.FilmeDao;
import multiplex.dataaccess.dao.PromocaoFilmeDao;
import multiplex.model.Filme;
import multiplex.model.PromocaoFilme;

public class PromocaoFilmeDaoTeste implements IDaoTeste{
	
	public void run(){
		SaveTeste();
		GetAndUpdateTeste();
		RemoveTeste();
	}
	
	private void SaveTeste(){
		PromocaoFilmeDao promocaoFilmeDAO = new PromocaoFilmeDao();
		PromocaoFilme promocaoFilme = new PromocaoFilme();
		promocaoFilme.setNome("As sete vidas de um Garto morto está sete vezes mais barato");
		promocaoFilme.setDesconto(2.4);
		promocaoFilme.setDia(Calendar.getInstance());
		FilmeDao filmeDao = new FilmeDao();
		Filme filme = new Filme();
		Calendar calendar = Calendar.getInstance();
		calendar.set(2010,10,01);
		filme.setAno(calendar);
		filme.setDestaque(true);
		filme.setDistribuidora("Disney");
		calendar = Calendar.getInstance();
		calendar.set(2010,10,05);
		filme.setDuracao(calendar);
		filme.setElenco("Robert de Niro");
		filme.setIndicacaoEtaria(16);
		filme.setLocalProducao("Bósnia");
		filme.setNome("A volta dos que não foram");
		filme.setNomeOriginal("The back of the one who not went");
		filme.setTipoFilme("Drama");
		filme.setSite("www.qualquercoisa.com");
		filme.setProdutores("Hessel");
		filme.setDirecao("Samir Elias Rossi");
		filmeDao.save(filme);
		promocaoFilme.setFilme(filme);
		promocaoFilmeDAO.save(promocaoFilme);
		System.out.println("PromocaoFilme salva com sucesso!");
	}
	
	private void GetAndUpdateTeste(){
		List<PromocaoFilme> promocoes;
		PromocaoFilmeDao promocaoFilmeDao = new PromocaoFilmeDao();
		promocoes = promocaoFilmeDao.getAll();
		List<PromocaoFilme> promocoes2;
		promocoes2 = promocaoFilmeDao.getAllFromFilme(promocoes.get(0).getFilme());
		PromocaoFilme promocao = promocoes2.get(0);
		promocao.setDesconto(3.0);
		promocaoFilmeDao.update(promocao);
		System.out.println("PromocaoFilme atualizada com sucesso!");
	}
	
	private void RemoveTeste(){
		PromocaoFilmeDao promocaoFilmeDao = new PromocaoFilmeDao();
		PromocaoFilme promocaoFilme = promocaoFilmeDao.getAll().get(0);
		promocaoFilmeDao.remove(promocaoFilme);
		System.out.println("PromocaoFilme deletada com sucesso!");
	}
	
}
